home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1999 March / EnigmA AMIGA RUN 35 (1999)(G.R. Edizioni)(IT)[!][issue 1999-03].iso / earcd / devel / vbcc-68k-src / machines / amiga68k / libsrc / stdio / _flushbuf.c < prev    next >
C/C++ Source or Header  |  1999-01-01  |  551b  |  25 lines

  1.  
  2. #include <stdio.h>
  3.  
  4. #include <proto/dos.h>
  5.  
  6. /* flushes remaining data from buffer */
  7. int _flushbuf(FILE *f)
  8. {
  9.     _chkabort();
  10.     if(!f) return(EOF);
  11.     if(!f->bufsize){if(f->flags&_UNBUF) f->bufsize=1; else f->bufsize=BUFSIZ;}
  12.     if(!f->base) return(0);
  13.     if(f->flags&_WRITE){
  14.         int len=f->pointer-f->base;
  15.         if(Write((BPTR)f->filehandle,f->base,len)!=len){
  16.             f->flags|=_ERR;
  17.             return(EOF);
  18.         }
  19.         f->pointer=f->base;
  20.         f->count=f->bufsize;
  21.     }
  22.     f->flags&=~(_READ|_WRITE);
  23.     return(0);
  24. }
  25.